home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / libs / kpathsea / debug.h < prev    next >
C/C++ Source or Header  |  1996-11-02  |  2KB  |  70 lines

  1. /* debug.h: Runtime tracing.
  2.  
  3. Copyright (C) 1993, 94 Karl Berry.
  4.  
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2, or (at your option)
  8. any later version.
  9.  
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  */
  18.  
  19. /* Modified by Klaus Gebhardt, 1996 */
  20.  
  21. #ifndef KPATHSEA_DEBUG_H
  22. #define KPATHSEA_DEBUG_H
  23.  
  24. #include <kpathsea/c-proto.h>
  25. #include <kpathsea/c-std.h>
  26. #include <kpathsea/types.h>
  27.  
  28. /* OK, we'll have tracing support.  */
  29. #define DEBUG
  30.  
  31. /* Bit vector defining what we should trace.  */
  32. extern unsigned kpathsea_debug;
  33.  
  34. /* Set a bit.  */
  35. #define KPSE_DEBUG_SET(bit) kpathsea_debug |= 1 << (bit)
  36.  
  37. /* Test if a bit is on.  */
  38. #define KPSE_DEBUG_P(bit) (kpathsea_debug & (1 << (bit)))
  39.  
  40. #define KPSE_DEBUG_STAT 0        /* stat calls */
  41. #define KPSE_DEBUG_HASH 1        /* hash lookups */
  42. #define KPSE_DEBUG_FOPEN 2        /* fopen/fclose calls */
  43. #define KPSE_DEBUG_PATHS 3        /* search path initializations */
  44. #define KPSE_DEBUG_EXPAND 4        /* path element expansion */
  45. #define KPSE_DEBUG_SEARCH 5        /* searches */
  46.  
  47. /* A printf for the debugging.  */
  48. #define DEBUGF_START() do { fputs ("kdebug:", stderr)
  49. #define DEBUGF_END()        fflush (stderr); } while (0)
  50.  
  51. #define DEBUGF(str)                            \
  52.   DEBUGF_START (); fputs (str, stderr); DEBUGF_END ()
  53. #define DEBUGF1(str, e1)                        \
  54.   DEBUGF_START (); fprintf (stderr, str, e1); DEBUGF_END ()
  55. #define DEBUGF2(str, e1, e2)                        \
  56.   DEBUGF_START (); fprintf (stderr, str, e1, e2); DEBUGF_END ()
  57. #define DEBUGF3(str, e1, e2, e3)                    \
  58.   DEBUGF_START (); fprintf (stderr, str, e1, e2, e3); DEBUGF_END ()
  59. #define DEBUGF4(str, e1, e2, e3, e4)                    \
  60.   DEBUGF_START (); fprintf (stderr, str, e1, e2, e3, e4); DEBUGF_END ()
  61.  
  62. #undef fopen
  63. #define fopen kpse_fopen_trace
  64. extern FILE *fopen P2H(const_string filename, const_string mode);
  65. #undef fclose
  66. #define fclose kpse_fclose_trace
  67. extern int fclose P1H(FILE *);
  68.  
  69. #endif /* not KPATHSEA_DEBUG_H */
  70.